﻿#ifndef CPucStatisicsChat_H
#define CPucStatisicsChat_H
/********************************************************************************
** @ Date:2025/09/12
** @ Author: HanJiaXin
** @ Description:报警事件统计公共卡片
** @ Version:1.0.0
** @ ClassName:CPucStatisicsChat
** @ Fun:
********************************************************************************/
#include <QWidget>
#include <QtCharts> // 必须包含此头文件
#include <QToolTip> // 用于鼠标悬停提示
#include "ui_CPucStatisicsChat.h"
#include "CDevDataCam.h"

class CPucStatisicsChat : public QWidget
{
	Q_OBJECT

public:
	CPucStatisicsChat(int nType,QString sCardGuid,QWidget *parent = nullptr);
	~CPucStatisicsChat();

private:
	void initLineChart();// 初始化折线图
	void initBarChart();// 初始化柱状图
	void initVecDevData();//初始化绑定的设备

	void refresLine();
	void refresBar();

public slots:
	void refreshData(bool bRefresh);     // 这个函数会被外部调用
	void slotRefreshUI();//刷新界面
	void slotConnectDev();//点击绑定设备

private:
	Ui::CPucStatisicsChatClass ui;
	int m_nCardType;//0:获取设备列表时关于设备的绑定不处理  1:上层传来卡片Guid的时候需要处理
	QString m_sCardGuid;//卡片Guid

	QTimer* m_pTimer;
	//折线图组件
	QChart *m_pLineSeriesChart;
	QValueAxis *m_pLineSeriesAxisY;
	QLineSeries* m_pSeries;
	// 柱状图组件
	QChart* m_pBarChart;
	QBarSeries* m_pBarSeries;
	QBarSet* m_pBarSet;
	QValueAxis* m_pBarAxisY;
	// 标签管理
	QList<QGraphicsSimpleTextItem*> m_lineLabels;
	QList<QGraphicsSimpleTextItem*> m_barLabels;

	int m_nType;//0:折线图 1柱状图
	QVector<CDevDataCam*> m_vecDevData;
	QString m_sDevList;
	bool m_bConnectDevChanged;//绑定的设备是否发生变化

	//菜单
	QMenu* m_pMenu;
	QAction* m_pConnectDevAct;
};

#endif